const path = require("path");
const CompressionWebpackPlugin = require('compression-webpack-plugin');
let timeStamp = new Date().getTime();

module.exports = {
  publicPath: process.env.VUE_APP_BASE_PUBLICPATH,
  outputDir: "jnks-drone-yayun",
  assetsDir: "static",
  lintOnSave: false,
  productionSourceMap: false,
  filenameHashing: false, // 打包的时候不使用hash值.因为我们有时间戳来确定项目的唯一性了.
  devServer: {
    proxy: {
      "/": {
        ws: false,
        target: process.env.VUE_APP_BASE_URL,
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          "^/": "",
        },
      },
    },
  },
  chainWebpack: (config) => {
    config.plugin("html").tap((args) => {
      args[0].title = "民用无人机防御反制平台";
      return args;
    });
    config.resolve.alias.set("img", path.resolve("static/img")).set('@', path.resolve('src')).set('assets', path.resolve('src/assets')).set('utils', path.resolve('src/utils'));
  },
  configureWebpack: (config) => {
    config.output.filename = `static/js/js[name].${timeStamp}.js`;
    config.output.chunkFilename = `static/js/chunk.[id].${timeStamp}.js`;// 输出重构 打包编译后的js文件名称,添加时间戳
    config.plugins.push(
      new CompressionWebpackPlugin({
        algorithm: 'gzip',     // 默认压缩是gzip
        test: /\.js$|\.css$|\.html$|\.ttf$|\.eot$|\.woff$/, // 使用正则给匹配到的文件做压缩，这里是给html、css、js以及字体（.ttf和.woff和.eot）做压缩
        threshold: 10240,      //以字节为单位压缩超过此大小的文件，使用默认值10240
        minRatio: 0.8,          // 最小压缩比率，官方默认0.8
        //是否删除原有静态资源文件，即只保留压缩后的.gz文件，建议这个置为false，还保留源文件。
        deleteOriginalAssets: false
      })
    )
  },

};
